home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol220 / toxic.arc / SIMPLE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  22.4 KB  |  192 lines

  1. 10  GOSUB 500:GOSUB 7760
  2. 20  CLS:PRINT:PRINT
  3. 30  PRINT TAB(21);STRING$(40,"*")
  4. 40  PRINT TAB(21);"*";TAB(60);"*"
  5. 50  PRINT TAB(21);"*          SIMPLE  GAS  MODEL          *"
  6. 60  PRINT TAB(21);"*";TAB(60);"*"
  7. 70  PRINT TAB(21);STRING$(40,"*")
  8. 80  PRINT:PRINT
  9. 90  PRINT TAB(17);"PLEASE SUPPLY THE FOLLOWING WEATHER INFORMATION:"
  10. 100  LOCATE 13,20,1:PRINT "DOES THE SPILL OCCUR AT DAY OR AT NIGHT?(D/N)":TIM$=INPUT$(1)
  11. 110  IF TIM$<>"N" AND TIM$<>"n"  THEN 130
  12. 112  PRINT:PRINT TAB(24);"WHAT IS THE DEGREE OF CLOUD COVER?"
  13. 114  PRINT
  14. 116        PRINT TAB(28);"       1. 100%"
  15. 118        PRINT TAB(28);"       2. 50-99%"
  16. 120        PRINT TAB(28);"       3. <50%"
  17. 121        PRINT TAB(28);"       4. don't know"
  18. 122  PRINT
  19. 124  LOCATE 22,25:INPUT "PLEASE CHOOSE 1, 2, 3 OR 4 ===> ",CC
  20. 125  IF CC=1 OR CC=4  THEN DFLAG=1:GOTO 2000
  21. 126  IF CC=2 OR CC=3  THEN DFLAG=0:CC=CC-1:GOTO 2000  ELSE PRINT CHR$(7):GOTO 124
  22. 130  IF TIM$="D" OR TIM$="d"  THEN 132  ELSE PRINT CHR$(7):GOTO 100
  23. 132  PRINT:PRINT TAB(24);"HOW INTENSE IS THE INCOMING SUNLIGHT?"
  24. 134  PRINT
  25. 136        PRINT TAB(24);"     1. strong"
  26. 138        PRINT TAB(24);"     2. moderate"
  27. 140        PRINT TAB(24);"     3. slight"
  28. 141        PRINT TAB(24);"     4. heavy overcast OR don't know"
  29. 142  PRINT
  30. 144  LOCATE 22,24:INPUT "PLEASE CHOOSE 1, 2, 3 OR 4 ===> ",IS
  31. 145  IF IS=4  THEN DFLAG=1:GOTO 2000
  32. 146  IF IS=1 OR IS=2 OR IS=3  THEN DFLAG=0:GOTO 2000  ELSE PRINT CHR$(7):GOTO 14
  33. 500  REM  DEFINE HORIZONTAL FLUCTUATION (DAYTIME)
  34. 510  DIM SIGMATHD(5,3)
  35. 520  FOR I=1 TO 5:FOR J=1 TO 3
  36. 530     READ SIGMATHD(I,J)
  37. 540  NEXT J:NEXT I
  38. 550  DATA 0.22, 0.19, 0.17
  39. 560  DATA 0.19, 0.17, 0.13
  40. 570  DATA 0.17, 0.15, 0.13
  41. 580  DATA 0.13, 0.11, 0.09
  42. 590  DATA 0.13, 0.09, 0.09
  43. 600  REM  DEFINE HORIZONTAL FLUCTUATION (NIGHTTIME)
  44. 610  DIM SIGMATHN(5,2)
  45. 620  FOR I=1 TO 5:FOR J=1 TO 2
  46. 630     READ SIGMATHN(I,J)
  47. 640  NEXT J:NEXT I
  48. 650  DATA 0.02, 0.02
  49. 660  DATA 0.045,0.02
  50. 670  DATA 0.09, 0.045
  51. 680  DATA 0.09, 0.09
  52. 690  DATA 0.09, 0.09
  53. 700  RETURN
  54. 1000  REM  CALCULATING THE SIGMAS
  55. 1030  WS=DV(6)
  56. 1060  IF TIM$="N" OR TIM$="n"  THEN 1200
  57. 1090  ' DAYTIME
  58. 1100  IF WS<2  THEN SD=SIGMATHD(1,IS):GOTO 1150
  59. 1110  IF WS<3  THEN SD=SIGMATHD(2,IS):GOTO 1150
  60. 1120  IF WS<5  THEN SD=SIGMATHD(3,IS):GOTO 1150
  61. 1130  IF WS<6  THEN SD=SIGMATHD(4,IS):GOTO 1150
  62. 1140                SD=SIGMATHD(5,IS)
  63. 1150  STHD=INT(SD*1000+0.5)/1000:SPHD=INT(SD/3*2000+0.5)/1000
  64. 1160  DV(10)=SD:IF ABS(SD-0.09)<0.000999999  THEN DF$(10)=".09"  ELSE DF$(10)=MID$(STR$(STHD),2)
  65. 1170  DV(9)=SD*2/3:DF$(9)=MID$(STR$(SPHD),2)
  66. 1180  RETURN
  67. 1190  ' NIGHTTIME
  68. 1200  IF WS<2  THEN SN=SIGMATHN(1,CC):GOTO 1250
  69. 1210  IF WS<3  THEN SN=SIGMATHN(2,CC):GOTO 1250
  70. 1220  IF WS<5  THEN SN=SIGMATHN(3,CC):GOTO 1250
  71. 1230  IF WS<6  THEN SN=SIGMATHN(4,CC):GOTO 1250
  72. 1240                SN=SIGMATHN(5,CC)
  73. 1250  STHN=INT(SN*1000+0.5)/1000:SPHN=INT(SN/3*2000+0.5)/1000
  74. 1260  DV(10)=SN:IF ABS(SN-0.09)<0.000999999  THEN DF$(10)=".09"  ELSE DF$(10)=MID$(STR$(STHN),2)
  75. 1270  DV(9)=SN*2/3:DF$(9)=MID$(STR$(SPHN),2)
  76. 1280  RETURN
  77. 2000  REM   SIMPLE DISPERSION MODEL
  78. 2010  IF CON=1  THEN 2340
  79. 2020  IF INS=1  THEN 2620
  80. 2050  CLS
  81. 2060  PRINT: PRINT: PRINT
  82. 2070  PRINT TAB(21); STRING$(40,"*")
  83. 2080  PRINT TAB(21); "*"; TAB(60); "*"
  84. 2090  PRINT TAB(21); "*          SIMPLE  GAS  MODEL          *"
  85. 2100  PRINT TAB(21); "*"; TAB(60); "*"
  86. 2110  PRINT TAB(21); STRING$(40,"*")
  87. 2120  PRINT:PRINT
  88. 2130  MSG$(3)="CONCENTRATION:"
  89. 2140  MSG$(5)="DOWN WIND DISTANCE:"
  90. 2150  PRINT
  91. 2160  PRINT TAB(24); "1. Continuous Release Case"
  92. 2170  PRINT
  93. 2180  PRINT TAB(24); "2. Instantaneous Release Case"
  94. 2185  PRINT
  95. 2190  PRINT TAB(24); "3. Source Emission (Rate) Caln."
  96. 2195  PRINT
  97. 2200  PRINT TAB(24); "4. Quit (Exit to GAS SYSTEM MENU)"
  98. 2210  PRINT: PRINT: PRINT
  99. 2220  PRINT TAB(28); "SELECT =====>"
  100. 2230  PPR=22:PPC=43
  101. 2250  GOSUB 7000
  102. 2260  IF BF$="1" THEN 2340
  103. 2270  IF BF$="2" THEN 2620
  104. 2275  IF BF$="3"  THEN CHAIN "SOURCE"
  105. 2280  IF BF$="4" THEN 7720
  106. 2290  PRINT CHR$(7);
  107. 2300  LOCATE 22,19
  108. 2310  PRINT "*** ILLEGAL SELECTION: TYPE 1, 2, 3 OR 4 ***"
  109. 2320  FOR I=1 TO 1500: NEXT I
  110. 2330  GOTO 2000
  111. 2340  REM *** CONTINUOUS MODEL MENU ***
  112. 2350  QRN=CALD  
  113. 2355  IF QRN=1  THEN DV(1)=QV*1000:DF$(1)=MID$(STR$(DV(1)),2)
  114. 2360  CLS
  115. 2370  PRINT: PRINT: PRINT
  116. 2380  PRINT TAB(21); STRING$(40,"*")
  117. 2390  PRINT TAB(21); "*"; TAB(60); "*"
  118. 2400  PRINT TAB(21); "*       CONTINUOUS RELEASE MODEL       *"
  119. 2410  PRINT TAB(21); "*"; TAB(60); "*"
  120. 2420  PRINT TAB(21); STRING$(40,"*")
  121. 2430  PRINT: PRINT
  122. 2440  PRINT TAB(26); "1. Calculate Concentration.":PRINT
  123. 2450  PRINT TAB(26); "2. Calculate Emission Rate.":PRINT
  124. 2460  PRINT TAB(26); "3. Calculate Caution Distance.":PRINT
  125. 2470  PRINT TAB(26); "4. Quit (Exit to Simple Gas Menu).":PRINT
  126. 2480  PRINT: PRINT
  127. 2490  PRINT TAB(29); "SELECT =====>"
  128. 2500  PPR=21:PPC=44
  129. 2510  GOSUB 7000
  130. 2530  IF BF$="1" THEN 2880
  131. 2540  IF BF$="2" THEN 4700
  132. 2550  IF BF$="3" THEN 5550
  133. 2560  IF BF$="4" THEN 2050
  134. 2570  PRINT CHR$(7)
  135. 2580  LOCATE 21,19
  136. 2590  PRINT "*** ILLEGAL SELECTION: TYPE 1, 2, 3 OR 4 ***"
  137. 2600  FOR I=1 TO 1500: NEXT I
  138. 2610  GOTO 2340
  139. 2620  REM *** INSTANTANEOUS MODEL MENU ***
  140. 2630  QRN=CALD
  141. 2635  IF QRN=1  THEN DV(2)=QP*1000:DF$(2)=MID$(STR$(DV(2)),2)
  142. 2640  CLS
  143. 2650  PRINT: PRINT: PRINT
  144. 2660  PRINT TAB(21); STRING$(40,"*")
  145. 2670  PRINT TAB(21); "*"; TAB(60); "*"
  146. 2680  PRINT TAB(21); "*    INSTANTANEOUS RELEASE MODEL       *"
  147. 2690  PRINT TAB(21); "*"; TAB(60); "*"
  148. 2700  PRINT TAB(21); STRING$(40,"*")
  149. 2710  PRINT: PRINT: PRINT
  150. 2720  PRINT TAB(26); "1. Calculate Concentration.":PRINT
  151. 2730  PRINT TAB(26); "2. Calculate Caution Distance.":PRINT
  152. 2740  PRINT TAB(26); "3. Quit (Exit to Simple Gas Menu).":PRINT
  153. 2750  PRINT: PRINT
  154. 2760  PRINT TAB(29); "SELECT =====>"
  155. 2770  PPR=20:PPC=44
  156. 2780  GOSUB 7000
  157. 2800  IF BF$="1" THEN 3810
  158. 2810  IF BF$="2" THEN 5130
  159. 2820  IF BF$="3" THEN 2050
  160. 2830  PRINT CHR$(7)
  161. 2840  LOCATE 20,19
  162. 2850  PRINT "*** ILLEGAL SELECTION: TYPE 1, 2 OR 3 ***"
  163. 2860  FOR I=1 TO 1500: NEXT I
  164. 2870  GOTO 2620
  165. 2880  REM ** CALCULATE CONCENTRATION ** continuous
  166. 2890  CLS
  167. 2895  SKIP=1:TLVS=0
  168. 2900  PRINT
  169. 2910  TITLE$="*** CALCULATE CONCENTRATION ***"
  170. 2915  PRINT TAB(24);TITLE$
  171. 2920  PRINT: PRINT
  172. 2925  MSG$(5)="DOWN-WIND DISTANCE:"
  173. 2930  SM = 7
  174. 2940  SO(1)=1: SO(2)=6: SO(3)=5: SO(4)=8
  175. 2950  SO(5)=9: SO(6)=10: SO(7)=7
  176. 2960  FOR I=1 TO SM
  177. 2970    K=SO(I)
  178. 2980    PRINT TAB(19); MSG$(SO(I)); TAB(53); UNIT$(SO(I),DU(K))
  179. 2990    PRINT
  180. 3000    NEXT I
  181. 3005  GOSUB 9600
  182. 3010  FOR J=1 TO SM
  183. 3020    PPR=J*2+3:PPC=40
  184. 3030    ID=SO(J)
  185. 3040    GOSUB 7330
  186. 3050    IF FLAG=1 THEN GOTO 2880
  187. 3060    IF FLAG=2 THEN GOTO 2340
  188. 3070    NEXT J
  189. 3075  GOSUB 9500
  190. 3080  IF DV(5) < DV(7)*DV(6) THEN 3110
  191. 3090     DV(3) = 0
  192.